20 commandes FFmpeg

Jacques Tremblay

Sommaire

20 commandes FFmpeg Utiles pour les débutants

Découvrez les 20 commandes FFmpeg les plus utilisées

1. Obtenir des informations sur les fichiers audio / vidéo

2. Comment convertir des fichiers vidéo en différents formats ?

Conversion Mp4 vers AVI

Conversion FLV vers MPEG

3. Comment convertir des fichiers vidéo en fichiers audio ?

4. Changer la résolution des fichiers vidéo

5. Comment compresser des fichiers vidéo ?

6. Compression de fichiers audio

7. Supprimer le flux audio d’un fichier vidéo

8. Comment supprimer le flux vidéo d’un fichier multimédia

9. Extraire des images de la vidéo

10. Recadrer des vidéos

11. Convertir une partie spécifique d’une vidéo

13. Ajouter une image affiche aux fichiers audio

14. Réduire la durée d’un fichier multimédia

15. Diviser les fichiers vidéo en plusieurs parties

16. Joindre ou fusionner plusieurs parties vidéo en une seule

17. Ajouter des sous-titrages à un fichier vidéo

18. Prévisualiser ou tester des fichiers vidéo ou audio

19. Augmenter / diminuer la vitesse de lecture de la vidéo

20. Obtenir de l’aide

 

Découvrez les 20 commandes FFmpeg les plus utilisées

La syntaxe typique de la commande FFmpeg est la suivante:

ffmpeg [global_options] {[input_file_options] -i input_url} ...

 {[output_file_options] output_url} ...

Nous allons maintenant expérimenter quelques commandes FFmpeg importantes et utiles.

1. Obtenir des informations sur les fichiers audio / vidéo

Afin de pouvoir afficher les détails d’un fichier multimédia, exécutez la commande suivant:

$ ffmpeg -i video.mp4

Voici un exemple de ce que vous obtenez :

ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers

built with gcc 8.2.1 (GCC) 20181127

configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3

libavutil 56. 22.100 / 56. 22.100

libavcodec 58. 35.100 / 58. 35.100

libavformat 58. 20.100 / 58. 20.100

libavdevice 58. 5.100 / 58. 5.100

libavfilter 7. 40.101 / 7. 40.101

libswscale 5. 3.100 / 5. 3.100

libswresample 3. 3.100 / 3. 3.100

libpostproc 55. 3.100 / 55. 3.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':

Metadata:

major_brand : isom

minor_version : 512

compatible_brands: isomiso2avc1mp41

encoder : Lavf58.20.100

Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/s

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)

Metadata:

handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.

Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)

Metadata:

handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.

At least one output file must be specified

 

Comme vous le constater dans la sortie ci-dessus, FFmpeg affiche pleins d’informations sur le fichier multimédia. Il affiche aussi d’autres détails sur FFmpeg tels que la version, les détails de configuration, la notice de copyright, les options de construction et de bibliothèque, etc.

Si vous ne voulez pas voir uniquement les informations sur fichier multimédia, alors utilisez l’indicateur -hide_banner pour omettre les autres détails.

$ ffmpeg -i video.mp4 -hide_banner

Voici ce que vous obtenez :

 
 

Comme vous pouvez le constater maintenant, Il n’y a que les détails du fichier multimédia.

2. Comment convertir des fichiers vidéo en différents formats ?

FFmpeg est un puissant convertisseur audio et vidéo. Il est donc possible de convertir des fichiers multimédias entre différents formats.

Conversion Mp4 vers AVI

Prenons l’exemple d’une conversion d’un fichier mp4 en fichier avi.

Il faut simplement exécuter la commande suivante :

$ ffmpeg -i video.mp4 video.avi

Conversion FLV vers MPEG

De même, vous pouvez convertir des fichiers multimédias dans n’importe quel format de votre choix.

Par exemple, pour convertir des vidéos au format youtube flv au format mpeg, exécutez la commande suivant:

$ ffmpeg -i video.flv video.mpeg

Si vous souhaitez préserver la qualité de votre fichier vidéo source, utilisez le paramètre « -qscale 0 » :

$ ffmpeg -i input.webm -qscale 0 output.mp4

Une bonne chose à faire est de vérifier la liste des formats pris en charge par FFmpeg. Pour le savoir procéder avec cette commande :

$ ffmpeg -formats

3. Comment convertir des fichiers vidéo en fichiers audio ?

Pour convertir un fichier vidéo en fichier audio, spécifiez simplement le format de sortie au format .mp3, .ogg ou tout autre format audio.

La commande ci-dessus convertira le fichier vidéo input.mp4 en fichier audio output.mp3.

$ ffmpeg -i input.mp4 -vn output.mp3

Vous pouvez également utiliser diverses options de transcodage audio dans le fichier de sortie, comme indiqué ci-dessous.

$ ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3

Voici une explication de ce que représente chacun des sigles :

4. Changer la résolution des fichiers vidéo

Si vous souhaitez définir une résolution particulière pour un fichier vidéo, vous pouvez utiliser la commande suivante:

$ ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4

Ou encore celle-ci :

$ ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

La commande ci-dessus définira la résolution du fichier vidéo donné sur 1280 × 720.

De même, pour convertir le fichier ci-dessus en taille 640 × 480, exécutez la commande suivante:

$ ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4

Ou encore:

$ ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4

Cette astuce vous aidera à adapter vos fichiers vidéo à des appareils d’affichage plus petits tels que des tablettes et des téléphones portables.

5. Comment compresser des fichiers vidéo ?

Il est toujours fortement recommandé de réduire la taille de vos fichiers multimédias à une taille inférieure. Cela vous permet non seulement d’économiser de l’espace disque mais aussi vos vidéos se chargeront plus rapidement.

La commande suivante compressera et réduira la taille du fichier de sortie.

$ ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

Veuillez noter que vous perdrez la qualité si vous essayez de réduire la taille du fichier vidéo. Vous pouvez abaisser cette valeur à 23 ou moins si 24 est trop agressif.

Vous pouvez également transcoder un peu l’audio. En fait, il est possible de le rendre en mode stéréo pour en réduire la taille. Vous pouvez aussi inclure les options suivantes :

-ac 2 -c:a aac -strict -2 -b:a 128k

6. Compression de fichiers audio

Tout comme pour la compression de fichiers vidéo, vous pouvez également compresser des fichiers audio à l’aide de de la commande –ab. Cela vous permettra certainement de libérer de l’espace disque.

Disons que vous avez un fichier audio de 320 kbps. Vous souhaitez le compresser en modifiant le débit binaire en une valeur inférieure, comme ci-dessous.

$ ffmpeg -i input.mp3 -ab 128 output.mp3

Voici la liste des différents débits binaires qui sont disponibles :

  1. 1.96kbps 

  2. 2.112kbps 

  3. 3.128kbps 

  4. 4.160kbps 

  5. 5.192kbps 

  6. 6.256kbps 

  7. 7.320kbps 

7. Supprimer le flux audio d’un fichier vidéo

Si vous ne voulez pas d’audio à partir d’un fichier vidéo, utilisez la fonction -an.

$ ffmpeg -i input.mp4 -an output.mp4

Le « an » indique qu’aucun enregistrement audio n’aura lieu.

La commande ci-dessus annulera tous les indicateurs liés à l’audio, car l’audio ne provient pas de input.mp4.

8. Comment supprimer le flux vidéo d’un fichier multimédia

Si vous ne voulez pas de flux vidéo, vous pouvez facilement le supprimer du fichier multimédia à l’aide de l’indicateur « vn ».

Le « vn » signifie pas d’enregistrement vidéo. En d’autres termes, cette commande convertit le fichier multimédia donné en fichier audio.

La commande suivante supprimera la vidéo du fichier multimédia donné.

$ ffmpeg -i input.mp4 -vn output.mp3

Vous pouvez également mentionner le débit du fichier de sortie (output) à l’aide de l’indicateur « -ab » comme indiqué dans l’exemple suivant :

$ ffmpeg -i input.mp4 -vn -ab 320 output.mp3

9. Extraire des images de la vidéo

Une autre fonctionnalité utile de FFmpeg est que vous pouvez facilement extraire des images d’un fichier vidéo.

Cela pourrait être très utile si vous souhaitez créer un album photo à partir d’un fichier vidéo.

Pour extraire des images d’un fichier vidéo, utilisez la commande suivante:

$ ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

Voici l’explication des indications :

10. Recadrer des vidéos

FFMpeg permet de recadrer un fichier multimédia dans n’importe quelle dimension de votre choix.

La syntaxe pour recadrer une vidéo est donnée ci-dessous:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

Voici une explication de cette ligne de commande :

Supposons que vous souhaitiez une vidéo d’une largeur de 640 pixels et d’une hauteur de 480 pixels, à partir de la position (200,150). La commande serait la suivante:

$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4

Veuillez noter que le recadrage de vidéos affectera la qualité. Ne le faites que lorsque c’est nécessaire.

11. Convertir une partie spécifique d’une vidéo

Parfois, vous voudrez peut-être ne convertir qu’une partie spécifique (durée) du votre vidéo en un autre format.

Par exemple, la commande suivante convertira les 10 premières secondes d’un fichier video.mp4 donné au format video.avi.

$ ffmpeg -i input.mp4 -t 10 output.avi

Dans notre exemple, j’ai spécifié le temps en secondes. En outre, il est possible de spécifier l’heure au format hh.mm.ss.

Les rapports de format couramment utilisés sont:

13. Ajouter une image affiche aux fichiers audio

En ajoutant les images à vos fichiers, elles apparaîtront à chaque fois le fichier audio est lu.

Cela pourrait être utile si vous voulez héberger vos fichiers audio et vidéo chez des sites d’hébergement et de partage.

$ ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

14. Réduire la durée d’un fichier multimédia

Pour réduire une vidéo en un clip plus petit en utilisant l’heure de début et de fin, nous pouvons utiliser la commande suivante :

$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4

Voici l’explication de cette commande :

Ceci est très utile lorsque vous souhaitez couper une partie d’un fichier audio ou vidéo en utilisant l’heure de début et de fin.

De même, nous pouvons réduire le fichier audio comme ci-dessous.

$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3

15. Diviser les fichiers vidéo en plusieurs parties

Certains sites Web vous permettent de télécharger uniquement une taille spécifique de vidéo. Dans ce cas, vous pouvez diviser les gros fichiers vidéo en plusieurs parties plus petites.

Voici comment faire :

$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4

16. Joindre ou fusionner plusieurs parties vidéo en une seule

FFmpeg est capable également de joindre différentes parties de plusieurs vidéos et puis créer un seul fichier vidéo.

Créez un fichier join.txt contenant les chemins exacts des fichiers que vous souhaitez rejoindre. Tous les fichiers doivent être au même format (même codec). Le chemin d’accès de tous les fichiers doit être mentionné un par un, comme ci-dessous.

file /home/th/mesvideos/partie1.mp4

file /home/th/mesvideos/partie2.mp4

file /home/th/mesvideos/partie3.mp4

file /home/th/mesvideos/partie4.mp4

Maintenant, fusionner tous les fichiers en utilisant la commande suivante :

$ ffmpeg -f concat -i join.txt -c copy output.mp4

Dans le cas où vous obtenez une erreur comme celle-là :

[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'

join.txt: Operation not permitted

Ajouter « -safe 0 »:

$ ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4

La commande ci-dessus joindra les fichiers partie1.mp4, partie2.mp4, partie3.mp4 et partie4.mp4 dans un fichier unique appelé «output.mp4».

17. Ajouter des sous-titrages à un fichier vidéo

Vous pouvez également ajouter des sous-titrages à un fichier vidéo en utilisant FFmpeg. Téléchargez le fichier de sous-titrage correct pour votre vidéo et ajoutez-le comme indiqué ci-dessous.

$ ffmpeg -i input.mp4 -i soutitrage.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4

18. Prévisualiser ou tester des fichiers vidéo ou audio

Vous voudrez peut-être prévisualiser pour vérifier ou tester si le fichier de sortie a été correctement transcodé ou non.

Vous pouvez le faire depuis votre terminal avec la commande suivante :

$ ffplay video.mp4

 
 

La même chose s’applique si vous voulez tester les fichiers audio.

$ ffplay audio.mp3

 
 

19. Augmenter / diminuer la vitesse de lecture de la vidéo

FFmpeg vous permet aussi de régler la vitesse de lecture vidéo.

Pour augmenter la vitesse de lecture vidéo, exécutez:

$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

Cette commande doublera la vitesse de la vidéo.

Pour ralentir votre vidéo, vous devez utiliser un multiplicateur supérieur à 1. Pour réduire la vitesse de lecture, exécutez le code suivant:

$ ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

20. Obtenir de l’aide

Dans ce guide, j’ai abordé les commandes FFmpeg les plus couramment utilisées. Il y a plusieurs options différentes pour faire diverses fonctions avancées. Pour en savoir plus à ce sujet, reportez-vous à la page de manuel.

$ man ffmpeg